#include <stdio.h>
#include "function.h"
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int id_count;

int main(){
	int comm;

	//读取ID计数
	FILE* idcnt = fopen("./usrcnt", "rb");
	if(idcnt == NULL){	//如果没有文件则创建文件，并写入十万(id计数) 123456(默认密码)
		idcnt = fopen("./usrcnt", "wb");
		if(idcnt != NULL){

			int idct = 100000;
			char defaultpwd[] = "123456";

			fwrite(&idct, sizeof(int), 1, idcnt);

			fwrite(defaultpwd, sizeof(char), strlen(defaultpwd), idcnt);

			fclose(idcnt);
		}

		idcnt = fopen("./usrcnt", "rb");

		if(idcnt == NULL){
			perror("fopen failed\n");
			exit(1);
		}

	}
	fread(&id_count, sizeof(int), 1, idcnt);
	fclose(idcnt);

	///////////////////////////////////////////////////
	//如果没有任何用户，将创建一个管理员用户
	if (access("./users.dat", F_OK) != 0) {
		user_data admin;
		admin.userID = id_count;
		admin.isUsed = 1;
		admin.isLoged = 0;
		admin.member_type = 4;

		system("clear");
		printf("首次使用，即将创建一个默认管理员用户，请刷卡：");
		char newCard[20];
		scanf("%s", newCard);
		strcpy(admin.cardNo, newCard);

		FILE* userfile = fopen("./users.dat", "wb");
		if (userfile != NULL) {
			fwrite(&admin, sizeof(user_data), 1, userfile);
			fclose(userfile);

			// 更新ID计数
			idcnt = fopen("./usrcnt", "wb");
			if (idcnt != NULL) {
				fwrite(&id_count, sizeof(int), 1, idcnt);
				fclose(idcnt);
			}
			system("clear");
			printf("创建默认管理员成功\n卡号：%s\nID: %d\n", admin.cardNo, admin.userID);
		}
		else {
			perror("fopen failed\n");
			exit(1);
		}
	}

	////////////////////////////////////////////////////
	
	system("clear");
	logquit();

	return 0;
}
